﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using CourseOrderWcf;

namespace CourseOrderServiceContract
{
    // 注意: 使用“重构”菜单上的“重命名”命令，可以同时更改代码和配置文件中的类名“Service1”。
    [ServiceBehavior(UseSynchronizationContext =true)]
    public class CourseOrderService : ICourseOrderService
    {
        public static event EventHandler<CourseOrderEventArgs> CourseOrderAdd;
        public void AddCourseOrder(CourseOrder courseOrder)
        {
            CourseOrderAdd?.Invoke(this, new CourseOrderEventArgs(courseOrder));
        }

        public string GetData(int value)
        {
            return string.Format("You entered: {0}", value);
        }

        public CompositeType GetDataUsingDataContract(CompositeType composite)
        {
            if (composite == null)
            {
                throw new ArgumentNullException("composite");
            }
            if (composite.BoolValue)
            {
                composite.StringValue += "Suffix";
            }
            return composite;
        }
    }
    public class CourseOrderEventArgs : EventArgs
    {
        public CourseOrder CourseOrder { get; set; }
        public CourseOrderEventArgs(CourseOrder courseOrder)
        {
            this.CourseOrder = courseOrder;
        }
    }
}
